using UnityEngine; using System.Collections.Generic; using EnhancedUI; using EnhancedUI.EnhancedScroller; namespace EnhancedScrollerDemos.CellEvents { /// /// This demo shows how you can respond to events from your cells views using delegates /// public class Controller : MonoBehaviour, IEnhancedScrollerDelegate { private List _data; public EnhancedScroller scroller; public EnhancedScrollerCellView cellViewPrefab; public float cellSize; void Start() { scroller.Delegate = this; LoadData(); } private void LoadData() { _data = new List(); for (var i = 0; i < 24; i++) _data.Add(new Data() { hour = i }); } #region EnhancedScroller Handlers public int GetNumberOfCells(EnhancedScroller scroller) { return _data.Count; } public float GetCellViewSize(EnhancedScroller scroller, int dataIndex) { return cellSize; } public EnhancedScrollerCellView GetCellView(EnhancedScroller scroller, int dataIndex, int cellIndex) { CellView cellView = scroller.GetCellView(cellViewPrefab) as CellView; // Set handlers for the cell views delegates. // Each handler will respond to a different type of event cellView.cellButtonTextClicked = CellButtonTextClicked; cellView.cellButtonFixedIntegerClicked = CellButtonFixedIntegerClicked; cellView.cellButtonDataIntegerClicked = CellButtonDataIntegerClicked; cellView.SetData(_data[dataIndex]); return cellView; } #endregion /// /// Handler for when the cell view fires a fixed text button click event /// /// value of the text private void CellButtonTextClicked(string value) { Debug.Log("Cell Text Button Clicked! Value = " + value); } /// /// Handler for when the cell view fires a fixed integer button click event /// /// value of the integer private void CellButtonFixedIntegerClicked(int value) { Debug.Log("Cell Fixed Integer Button Clicked! Value = " + value); } /// /// Handler for when the cell view fires a data integer button click event /// /// value of the integer private void CellButtonDataIntegerClicked(int value) { Debug.Log("Cell Data Integer Button Clicked! Value = " + value); } } }